package com.acegear.horizon.domain.events;

import com.acegear.horizon.domain.models.constraint.ClubEventType;
import com.acegear.horizon.domain.models.jpa.Address;
import com.acegear.horizon.domain.models.jpa.Location;

/**
 * Created by guoweike on 17/1/9.
 */
public class ActivityCreateEvent extends BaseEvent {

    public enum UpdateType {
	    SAVE, DELETE, UPDATE
	  }
	private Long activityId;

    private Long ownerId;


    private ClubEventType type;

    private String name;


    private Long startAt;

    private Long endAt;

    private String servicePhone;

    private String cover;


    private String summary;

    private String memo;


    private boolean state;


    private Location location;


    private Address address;

    private boolean deleted;


    public ActivityCreateEvent(Long activityId, Long ownerId, ClubEventType type, String name, Long startAt, Long endAt, String servicePhone, String cover, String summary, String memo, boolean state, Location location, Address address, boolean deleted) {
        this.activityId = activityId;
        this.ownerId = ownerId;
        this.type = type;
        this.name = name;
        this.startAt = startAt;
        this.endAt = endAt;
        this.servicePhone = servicePhone;
        this.cover = cover;
        this.summary = summary;
        this.memo = memo;
        this.state = state;
        this.location = location;
        this.address = address;
        this.deleted = deleted;
        genEventId();
    }


    public ActivityCreateEvent() {
    }

	public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(Long ownerId) {
        this.ownerId = ownerId;
    }

    public ClubEventType getType() {
        return type;
    }

    public void setType(ClubEventType type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getStartAt() {
        return startAt;
    }

    public void setStartAt(Long startAt) {
        this.startAt = startAt;
    }

    public Long getEndAt() {
        return endAt;
    }

    public void setEndAt(Long endAt) {
        this.endAt = endAt;
    }

    public String getServicePhone() {
        return servicePhone;
    }

    public void setServicePhone(String servicePhone) {
        this.servicePhone = servicePhone;
    }

    public String getCover() {
        return cover;
    }

    public void setCover(String cover) {
        this.cover = cover;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public boolean isState() {
        return state;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }


    @Override
    public String routingKey() {
        return "horizon.domain.activity.new";
    }
}
